/**
 * @desc providers
 * @author DragonTeam <https://www.bpmport.com>
 * @since 2024/10/28 15:29
 */
import { CircleDashed, Mail, Network, Send, Split, SquareParking, UserCog } from 'lucide-vue-next'
import type { AppendMenuProvider, BaseNodeType } from '@/types'

export const defaultAppendMenuProvider: AppendMenuProvider<BaseNodeType> = (
) => {
  return [
    {
      type: 'task',
      name: '用户任务',
      businessData: { $type: 'userTask' },
      icon: UserCog,
    },
    {
      type: 'service',
      name: '抄送任务',
      businessData: { $type: 'serviceTask', type: 'copy', cls: 'copy-service' },
      icon: Send,
    },
    {
      type: 'service',
      name: '邮件任务',
      businessData: { $type: 'serviceTask', type: 'mail', cls: 'mail-service' },
      icon: Mail,
    },
    {
      type: 'event',
      name: '异常事件',
      businessData: { $type: 'intermediateThrowEvent' },
      icon: CircleDashed,
    },
    {
      type: 'gateway',
      name: '互斥网关',
      businessData: { $type: 'exclusiveGateway' },
      icon: Split,
      iconStyle: { transform: 'rotate(180deg)' },
    },
    {
      type: 'gateway',
      name: '并行网关',
      businessData: { $type: 'parallelGateway' },
      icon: Network,
    },
    {
      type: 'subprocess',
      name: '子流程',
      businessData: { $type: 'subProcess' },
      icon: SquareParking,
    },
  ]
}
